package com.situ.day4;

import org.junit.Test;

import java.util.Scanner;

public class HomeWork {
    //1、计算某年是不是闰年：
    //能被4整除，但是不能被100整除    ||   能被400整除
    @Test
    public void test1() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入年份：");
        int year = scanner.nextInt();
        if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) {
            System.out.println(year + "是闰年");
        } else {
            System.out.println(year + "不是闰年");
        }
    }

    //arg: argument
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入单价：");
        double unitPrice = scanner.nextDouble();
        System.out.println("请输入数量：");
        double count = scanner.nextDouble();
        System.out.println("请输入金额");
        double price = scanner.nextDouble();
        double totalPrice = unitPrice * count;
        if (totalPrice >= 500) {
            //totalPrice = totalPrice * 0.8;
            totalPrice *= 0.8;
        }
        double returnPrice = price - totalPrice;
        if (returnPrice >= 0) {
            System.out.println("找零：" + returnPrice);
        } else {
            System.out.println("钱不够");
        }
    }

    @Test
    public void test2() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入单价：");
        double unitPrice = scanner.nextDouble();
        System.out.println("请输入数量：");
        double count = scanner.nextDouble();
        System.out.println("请输入金额");
        double price = scanner.nextDouble();
        double totalPrice = unitPrice * count;
        if (totalPrice >= 500) {
            //totalPrice = totalPrice * 0.8;
            totalPrice *= 0.8;
        }
        double returnPrice = price - totalPrice;
        if (returnPrice >= 0) {
            System.out.println("找零：" + returnPrice);
        } else {
            System.out.println("钱不够");
        }
    }

    //    1
//    12
//    123
//    1234
//    12345
    @Test
    public void test33() {
        for (int i = 1; i <= 5; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(j);
            }
            System.out.println();
        }
    }

    //   -----*
//   ----***
//   ---*****
//   --*******
//   -*********
//   ***********
    // i=1    j=1   j=5
    // i=2    j=3   j=4
    // i=3    j=5   j=3
    // i=4    j=7   j=2
    // j=2*i-1     j=6-i
    @Test
    public void test44() {
        for (int i = 1; i <= 6; i++) {
            for (int j = 0; j <= (6 - i); j++) {
                System.out.print(" ");
            }
            for (int j = 1; j <= (2 * i - 1); j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }

    //6、计算1-100以内所有奇数的和以及所有偶数的和，分别打印出来。
    @Test
    public void test55() {
        int oddSum = 0;
        int evenSum = 0;
        for (int i = 1; i <= 100; i++) {
            if (i % 2 == 0) {
                evenSum += i;
            } else {
                oddSum += i;
            }
        }
        System.out.println("奇数：" + oddSum);
        System.out.println("偶数：" + evenSum);
    }


    //用for循环输出1—1000之间能被5整除的数，且每行输出3个
    @Test
    public void test99() {
        int count = 0;
        for (int i = 1; i <= 1000; i++) {
            if (i % 5 == 0) {
                System.out.print(i + "\t");
                count++;
            }

            //判断是不是该换行
            if (count == 3) {
                System.out.println();
                count = 0;
            }
        }
    }

    //计算9的阶乘  9!=9*8*7*6*5*...*3*2*1
    @Test
    public void test991() {
        int sum = 1;
        for (int i = 9; i >= 1; i--) {
            //System.out.println(i);
            sum = sum * i;
        }
        System.out.println("sum: " + sum);
    }

    //1、int[] scores={0,0,1,2,3,5,4,5,2,8,7,6,9,5,4,8,3,1,0,2,4,8,7,9,5,2,1,2,3,9};
    //求出上面数组中0-9分别出现的次数
    @Test
    public void test90() {
        int[] scores = {0, 0, 1, 2, 3, 5, 4, 5, 2, 8, 7, 6, 9, 5, 4, 8, 3, 1, 0, 2, 4, 8, 7, 9, 5, 2, 1, 2, 3, 9};
        int count0 = 0;
        int count1 = 0;
        int count2 = 0;
        int count3 = 0;
        int count4 = 0;
        for (int i = 0; i < scores.length; i++) {
            switch (scores[i]) {
                case 0:
                    count0++;
                    break;
                case 1:
                    count1++;
                    break;
                case 2:
                    count2++;
                    break;
                case 3:
                    count3++;
                    break;
            }
        }

        System.out.println("0出现" + count0 + "次");
        System.out.println("1出现" + count1 + "次");
        System.out.println("2出现" + count2 + "次");
        System.out.println("3出现" + count3 + "次");

    }

    @Test
    public void test901() {
        int[] scores = {0, 0, 1, 2, 3, 5, 4, 5, 2, 8, 7, 6, 9, 5, 4, 8, 3, 1, 0, 2, 4, 8, 7, 9, 5, 2, 1, 2, 3, 9};
        int[] counts = new int[10];
        for (int i = 0; i < scores.length; i++) {
            counts[scores[i]]++;
        }

        for (int i = 0; i < counts.length; i++) {
            System.out.println(i + "出现" + counts[i] + "次");
        }
    }

//    2、int[] scores={0,0,1,2,3,5,4,5,2,8,7,6,9,5,4,8,3,1,0,2,4,8,7,9,5,2,1,2,3,9};
//    要求求出其中的奇数个数和偶数个数。
    @Test
    public void test88() {
        int[] scores={0,0,1,2,3,5,4,5,2,8,7,6,9,5,4,8,3,1,0,2,4,8,7,9,5,2,1,2,3,9};
        int oddCount = 0;
        int evenCount = 0;
        for (int score : scores) {
            if (score % 2 == 0) {
                evenCount++;
            } else {
                oddCount++;
            }
        }
        System.out.println("奇数个数：" + oddCount);
        System.out.println("偶数个数：" + evenCount);
    }

//    题目：一个任意一个字符串，判断它是不是回文。
    @Test
    public void test78() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入字符串：");
        String str = scanner.next();
        System.out.println(str);
        char[] array = str.toCharArray();
        boolean isHuiWen = true;
        for (int i = 0; i < array.length / 2; i++) {
            if (array[i] != array[array.length - i - 1]) {
                isHuiWen = false;
                break;
            }
        }
        if (isHuiWen) {
            System.out.println("是回文");
        } else {
            System.out.println("不是回文");
        }
    }

    //输入一行字符串，分别统计出其中英文字母、空格、数字和其它字符的个数。
    @Test
    public void tetst88() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入字符串：");
        String str = scanner.nextLine();
        System.out.println(str);
        //"dsfhi 34**DSD [34"
        char[] array = str.toCharArray();
        int letterCount = 0;
        int spaceCount = 0;
        int digitCount = 0;
        int otherCount = 0;
        for (int i = 0; i < array.length; i++) {
            if ((array[i] >= 'A' && array[i] <= 'Z')
                    || (array[i] >= 'a' && array[i] <= 'z')) {
                letterCount++;
            } else if (array[i] == ' ') {// ""
                spaceCount++;
            } else if (array[i] >= '0' && array[i] <= '9') {
                digitCount++;
            } else {
                otherCount++;
            }
        }
        System.out.println("字母出现次数：" + letterCount);
        System.out.println("空格出现次数：" + spaceCount);
        System.out.println("数字出现次数：" + digitCount);
        System.out.println("其他出现次数：" + otherCount);
    }

}
